package cn.marinda.totipotentwar.manager;

import cn.marinda.totipotentwar.global.AbstractGameData;

import java.util.HashMap;
import java.util.Map;

/**
 * 游戏数据管理器
 *
 * @author hwj
 * @date 2022/02/03
 */
public class GameDataManager implements GameManager {
    public static GameDataManager instance = new GameDataManager();

    /**
     * 游戏数据管理器
     */
    private GameDataManager(){
        instance = this;
    }


    /**
     * 游戏数据地图
     */
    private Map<String,AbstractGameData> gameDataMap = new HashMap<>();

    /**
     * 把添加游戏数据
     *
     * @param key              关键
     * @param abstractGameData 抽象的游戏数据
     */
    @Override
    public void putGameData(String key, AbstractGameData abstractGameData) {
        if(!gameDataMap.containsKey(key)){
            gameDataMap.put(key,abstractGameData);
        }
    }

    /**
     * 删除游戏数据
     *
     * @param key 关键
     */
    @Override
    public void deleteGameData(String key) {
        if(gameDataMap.containsKey(key)){
            gameDataMap.remove(key);
        }
    }

    /**
     * 更新游戏数据
     *
     * @param key              关键
     * @param abstractGameData 抽象的游戏数据
     */
    @Override
    public void updateGameData(String key, AbstractGameData abstractGameData) {
        if(gameDataMap.containsKey(key)){
            gameDataMap.put(key,abstractGameData);
        }
    }

    /**
     * 选择游戏数据
     *
     * @param key 关键
     */
    @Override
    public AbstractGameData selectGameData(String key) {
        for(String keys : gameDataMap.keySet()){
            if(keys.equalsIgnoreCase(key)){
                return gameDataMap.get(keys);
            }
        }
        return null;
    }
}
